package logic

import "paper-pro/app/paperfile/model"

type KqPdfTaskType = int

const (
	PDF_PARSE KqPdfTaskType = iota
	PDF_DELETE
)

type KqPdfTaskInfo struct {
	TaskType     KqPdfTaskType `json:"task_type"`
	TaskPlayload string        `json:"task_payload"`
}

type KqPaperMeta struct {
	Id       string `json:"id"`
	UpdateAt int64  `json:"updateAt"`
	CreateAt int64  `json:"createAt"`

	FileName    string `json:"file_name"`
	FileSize    int64  `json:"file_size"`
	ContentType string `json:"content_type"`
	UserId      int64  `json:"user_id"`

	// MinIO存储
	Status      string `json:"status"`
	MinIOBucket string `json:"minio_bucket"`
	MinIOObject string `json:"minio_object"` // 合并路径与文件名
	ETag        string `bson:"etag" json:"etag"`

	// 向量数据库存储
	ParseStatus string `json:"vector_status"`
}

func CopyKqPaperMeta(paperMeta *model.Paper) *KqPaperMeta {
	if paperMeta == nil {
		return nil
	}
	return &KqPaperMeta{
		Id:          paperMeta.ID.Hex(),
		UpdateAt:    paperMeta.UpdateAt.Unix(),
		CreateAt:    paperMeta.CreateAt.Unix(),
		FileName:    paperMeta.FileName,
		FileSize:    paperMeta.FileSize,
		ContentType: paperMeta.ContentType,
		UserId:      paperMeta.UserId,
		Status:      paperMeta.Status,
		MinIOBucket: paperMeta.MinIOBucket,
		MinIOObject: paperMeta.MinIOObject,
		ETag:        paperMeta.ETag,
		ParseStatus: paperMeta.ParseStatus,
	}
}
